package com.ethink.order.api.info;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;

/**
 * 销售需求详情单 INFO实体
 *
 * @author default
 * @date 2022-11-04
 */
@Data
public class SaleDemandOrderDetailInfo {

    @Schema(description ="主键")
    private Long id;

    @Schema(description ="销售需求单号")
    private String orderNo;

    @Schema(description ="销售需求详情单号")
    private String detailOrderNo;

    @Schema(description ="订单状态 :1-未锁单(s1)|2-已锁单(s2)|3-确认采购(s3)")
    private Integer detailOrderStatus;

    @Schema(description ="是否锁单")
    private Boolean isLock;

    @Schema(description ="商品编码")
    private String mateCode;

    @Schema(description ="商品名称")
    private String mateName;

    @Schema(description ="商品SKU")
    private String mateSku;

    @Schema(description ="商品SKU名称")
    private String mateSkuName;

    @Schema(description ="大类编号名称")
    private String generaCodeName;

    @Schema(description ="大类编号")
    private String generaCode;

    @Schema(description ="中类编号名称")
    private String minorDefectsCodeName;

    @Schema(description ="中类编号")
    private String minorDefectsCode;

    @Schema(description ="小类编号名称")
    private String subclassCodeName;

    @Schema(description ="小类编号")
    private String subclassCode;

    @Schema(description ="商品分类")
    private String categoryName;

    @Schema(description ="品牌编码")
    private String brandCode;

    @Schema(description ="品牌名称")
    private String brandName;

    @Schema(description ="商品条码")
    private String internationCode;

    @Schema(description ="包装单位编码")
    private String unitCode;

    @Schema(description ="包装单位编码")
    private String unitName;

    @Schema(description ="商品规格")
    private String productSpecification;

    @Schema(description ="需求数量")
    private Integer demandQty;

    @Schema(description ="需求确认数量")
    private Integer demandAffirmQty;

    @Schema(description ="最差需求期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date worstDemandPeriod;

    @Schema(description ="需求交期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date demandPeriod;

    @Schema(description ="截单日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @Schema(description ="预计销售价(含税)")
    private BigDecimal exceptSalePriceTax;

    @Schema(description ="预计销售价(不含税)")
    private BigDecimal exceptSalePriceNoTax;

    @Schema(description ="预计销售价-本币(不含税)")
    private BigDecimal exceptSalePriceNoTaxLocal;

    @Schema(description ="预计销售价-本币(含税)")
    private BigDecimal exceptSalePriceTaxLocal;

    @Schema(description ="目标成本-本币")
    private BigDecimal targetCostLocal;

    @Schema(description ="采购成本-本币")
    private BigDecimal averagePurchasePrice;

    @Schema(description ="预计毛利")
    private BigDecimal exceptGrossProfit;

    @Schema(description ="库存总数")
    private Integer totalQty;

    @Schema(description ="在途采购数量")
    private Integer purchasingQty;

    @Schema(description ="税率")
    private BigDecimal taxRate;

    @Schema(description ="折扣")
    private BigDecimal discount;

    @Schema(description ="数据删除标志(0-正常,1-删除)")
    private Integer isDeleted;

    @Schema(description ="数据创建时间戳")
    private Date createTime;

    @Schema(description ="数据更新时间戳")
    private Date updateTime;

    @Schema(description ="创建人")
    private String createUser;

    @Schema(description ="修改人")
    private String updateUser;

    @Schema(description ="备注信息")
    private String remark;

    @Schema(description = "0:未报价 非0:已报价")
    private Integer count;

    @Schema(description = "锁定数量")
    private Integer lockQty;

}
